// imageprocessor.cpp
#include "imageprocessor.h"
#include <opencv2/core.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp>

ImageProcessor::ImageProcessor(QObject *parent) : QObject(parent) {}

QUrl ImageProcessor::processVideo(const QString &filePath)
{
    cv::VideoCapture capture(filePath.toStdString());

    if (!capture.isOpened()) {
        qWarning("Failed to open the video file");
        return QUrl();
    }

    cv::Mat frame;
    cv::Mat processedFrame;

    while (capture.read(frame)) {
        // 处理每一帧，这里以灰度处理为例
        cv::cvtColor(frame, processedFrame, cv::COLOR_BGR2GRAY);

        // 显示处理后的帧
        cv::imshow("Processed Video", processedFrame);
        cv::waitKey(20); // 等待一小段时间，确保界面刷新

        // 如果需要将处理后的帧保存为视频文件，可以在这里添加代码
    }

    return QUrl(); // 如果需要返回处理后的视频文件的路径，可以在这里返回
}


QUrl ImageProcessor::orignVideo(const QString &filePath)
{
    cv::VideoCapture capture(filePath.toStdString());

    if (!capture.isOpened()) {
        qWarning("Failed to open the video file");
        return QUrl();
    }

    cv::Mat frame;
    cv::Mat processedFrame;

    while (capture.read(frame)) {

        // 显示处理后的帧
        cv::imshow("orign Video", frame);
        cv::waitKey(20); // 等待一小段时间，确保界面刷新

        // 如果需要将处理后的帧保存为视频文件，可以在这里添加代码
    }

    return QUrl(); // 如果需要返回处理后的视频文件的路径，可以在这里返回
}
